home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2010 Summer - Disc 1 / WN_Ete2010_CD1.iso / Onglet5 / Weezo / Weezo setup.exe / {code_appDir} / www / res / bookmarks / std / index.php < prev    next >
PHP Script  |  2010-05-19  |  21KB  |  495 lines

  1. <?php
  2. define('LAYOUT_LIST_WIDTH',120);
  3.  
  4. require_once(INCLUDE_DIR.'outputFunctions.php');
  5. require_once(INCLUDE_DIR.'bookmarkFunctions.php');
  6.  
  7. /*
  8.  ***************************************************************************************************************************
  9.  * Initialize resource
  10.  ***************************************************************************************************************************
  11.  */
  12. bfInit();
  13.  
  14. /*
  15.  ***************************************************************************************************************************
  16.  * Process POST commands
  17.  ***************************************************************************************************************************
  18.  */
  19. bfProcessPOST();
  20.  
  21. /**
  22.  * Mobiles
  23.  */
  24. if(cfIsMobile()) {require(dirname(__FILE__).'/mobileIndex.php');exit;}
  25.  
  26. /*
  27.  ***************************************************************************************************************************
  28.  * Insert HEAD, JS functions and form
  29.  ***************************************************************************************************************************
  30.  */
  31. bfInsertExplorerHeadAndBody();
  32. echo cfScriptLink('wz_dragdrop.js');
  33.  
  34.  
  35. /*
  36.  ***************************************************************************************************************************
  37.  * Generate bookmarks tree (not treeView...) and thumbnails
  38.  ***************************************************************************************************************************
  39.  */
  40. bfGenerateBookmarksTree();
  41. $bookmarks=cfRGetVar('bookmarks');
  42.  
  43.  
  44. // insert comments edition "dialog box"
  45. bfInsertCommentsEditionForm();
  46.  
  47. // Tree node select function (must be placed before tree creation)
  48. ?>
  49. <script type="text/javascript">function selectBM(n){return selectBMTreeNode(n)}</script>
  50. <style type="text/css">
  51. fieldset{vertical-align:top}
  52. .tnFrame{background:#F0F0F0;border:1px solid #CCC;position:relative;text-align:center;display:block;margin-bottom:-1em}
  53. </style>
  54. <?php
  55.  
  56. /*
  57. foreach ($bookmarks as $k=>$v) if($v['type']=='b'){
  58.     echo '<img src="'.(cfExtImage(mfFaviconFile($v['url']))).'">';
  59.     echo $v["name"]." - ".$v['url'];
  60.     echo '<img src="'.(cfExtImage(bfThumbnailFile($v['url']),50,50)).'">';
  61.     echo '<br>';
  62. }
  63. */
  64.  
  65. // Outter frame
  66. echo outDivFrame('frame1');
  67. $l=cfUTF8Encode(cfRGetVar('name')).'   ';
  68. if(!cfRGetVar('sortTreeView')) $l.=outButton(false,'javascript:sortTreeView(1)',outIcon('sdown16'));
  69. else $l.=outButton(false,'javascript:sortTreeView(0)',outIcon('sdownNo16'),false,'sortTreeViewNo');
  70.  
  71. $r='<span id="controls"></span>';
  72.  
  73. // Layout selection buttons
  74. if(cfRGetVar('displayThumbnails')) {
  75.     $bookmarksLayout=cfRGetVar('bookmarksLayout');
  76.     $singleBookmarkLayout=cfRGetVar('singleBookmarkLayout');
  77.     cfSetSavedRVar('bookmarksLayout','singleBookmarkLayout');
  78.  
  79.     // Single bookmark displayed controls
  80.     $r.='<span id="singleControls">';
  81.  
  82.     // thumbnail preview
  83.     $capt=cfCaption('genPreview');
  84.     $r.=outButton(false,"javascript:singleBookmarkLayoutSet('thumbnail')",outIcon('fi/icoImage2'),$capt,'singleBookmarkLayout_thumbnail',false,false,$singleBookmarkLayout==='thumbnail');
  85.  
  86.     // Embeded website
  87.     $capt=cfCaption('genSite');
  88.     $r.=outButton(false,"javascript:singleBookmarkLayoutSet('web')",outIcon('fi/icoURL'),$capt,'singleBookmarkLayout_web',false,false,$singleBookmarkLayout==='web');
  89.  
  90.     $r.='</span>  ';
  91.  
  92.     // Multiple bookmarks displayed controls
  93.     $r.='<span id="multipleControls">';
  94.  
  95.     // List layout
  96.     $capt=cfCaption('genDisplay').' - 1';
  97.     $r.=outButton(false,"javascript:bookmarksLayoutSet('list')",outIcon('displayList'),$capt,'bookmarksLayout_list',false,false,$bookmarksLayout==='list');
  98.  
  99.     // Icons layout
  100.     $capt=cfCaption('genDisplay').' - 2';
  101.     $r.=outButton(false,"javascript:bookmarksLayoutSet('icons')",outIcon('displayIcons'),$capt,'bookmarksLayout_icons',false,false,$bookmarksLayout==='icons');
  102.  
  103.     // Full layout
  104.     $capt=cfCaption('genDisplay').' - 3';
  105.     $r.=outButton(false,"javascript:bookmarksLayoutSet('full')",outIcon('displayFull'),$capt,'bookmarksLayout_full',false,false,$bookmarksLayout==='full');
  106.     $r.='</span>';
  107. }
  108. else $r.='<span id="singleControls"></span><span id="multipleControls"></span>';
  109.  
  110. echo outFrameHeaderTable('frame1Header',$l,$r);
  111. echo outTableTransparent().'<tr>';
  112.  
  113. // Treeview frame
  114. echo '<td class="frame2 vBanner" style="width:1px;vertical-align:top'.((cfRGetVar('treeViewPanel')?'':';display:none')).'" id="treeViewPanel">';
  115.  
  116. // Generate tree
  117. $treeView=bfTreeView();
  118. echo $treeView->HTML(false,false,false,'width:240px');
  119.  
  120. echo '</td>';
  121.  
  122. // Toggle collapse control
  123. $icons='<div style="'.outCssOpacity(50).';margin-top:0.4em">'.outImage(outIcon('folder')).'</div>';
  124. echo outCollapsableTD('treeViewPanel','left',array('innerHTML'=>$icons,'class'=>'vBanner'));
  125.  
  126.  
  127. // Main bookmarks TD
  128. echo '<td class="frame2" style="vertical-align:top"><div id="bookmarksDiv" style="overflow:auto;vertical-align:top"></div></td>';
  129.  
  130. // We're done
  131. echo '</tr></table>';
  132.  
  133. ?>
  134. <form method="POST" name="sortTreeViewForm" style="display:none"><input name="sortTreeView"></form>
  135. <form name="suppForm" method="post" enctype="multipart/form-data" style="display:none">
  136. <input name="resId" value="<?php echo $_SESSION['activeResourceId'];?>">
  137. <input name="suppress" id="suppress"></form>
  138.  
  139. <script type="text/javascript">
  140. var bookmarksLayout="<?php echo cfRGetVar('bookmarksLayout')?>";
  141. var singleBookmarkLayout="<?php echo cfRGetVar('singleBookmarkLayout')?>";
  142. var bmArray;
  143. var displayThumbnails=<?php echo (int)cfRGetVar('displayThumbnails')?>;
  144. var thumbnailSizeIcons="<?php echo cfRGetVar('thumbnailSizeIcons')?>";
  145. var thumbnailSizeFull="<?php echo cfRGetVar('thumbnailSizeFull')?>";
  146. var thumbnailRatio="<?php echo cfRGetVar('thumbnailRatio')?>";
  147. var monitorTimeout=0;
  148. var monitorDelay=<?php echo max(1000,(int)cfRGetVar('monitorDelay'));?>;
  149. var displayed;
  150. var editAllowed=<?php echo (int)bfEditAllowed();?>;
  151.  
  152. var addToBookmarksButtonTemplateS='<?php echo addslashes(outButtonSmall(false,'javascript:ACTION',outIcon('favorites'),'TITLE',false,' rel="sidebar"'))?>';
  153. var addToBookmarksButtonTemplate='<?php echo addslashes(outButton(false,'javascript:ACTION',outIcon('favorites'),'TITLE',false,' rel="sidebar"'))?>';
  154. var editCommentsButtonTemplateS='<?php echo addslashes(outButtonSmall(false,'javascript:ACTION',outIcon('edit'),cfCaption('genEdit')))?>';
  155. var editCommentsButtonTemplate='<?php echo addslashes(outButton(false,'javascript:ACTION',outIcon('edit'),cfCaption('genEdit')))?>';
  156. var suppButtonTemplateS='<?php echo addslashes(outButtonSmall(false,'javascript:ACTION',outIcon('del'),cfCaption('genDelete')))?>';
  157. var suppButtonTemplate='<?php echo addslashes(outButton(false,'javascript:ACTION',outIcon('del'),cfCaption('genDelete')))?>';
  158. var newBookmarkButtonTemplateS='<?php echo addslashes(outButtonSmall(false,'javascript:ACTION',outIcon('new'),cfCaption('bookmarksNewBookmark')))?>';
  159. var newBookmarkButtonTemplate='<?php echo addslashes(outButton(false,'javascript:ACTION',outIcon('new'),cfCaption('bookmarksNewBookmark')))?>';
  160. var fullScreenButtonTemplate='<?php echo addslashes(outButton(false,'javascript:ACTION',outIcon('fscreen'),cfCaption('genOpen')))?>';
  161.  
  162. function bmOpen(index){W.open(bmArray[index]['url'])}
  163. function addToBookmarksButton(i,small){
  164.     var bt=small?addToBookmarksButtonTemplateS:addToBookmarksButtonTemplate;
  165.     if(W.sidebar||W.external) return bt.replace(/ACTION/g,"addToBookmarks('"+i+"')").replace(/TITLE/g,bmArray[i]['label']);
  166.     else if(W.opera && W.print) return bt.replace(/javascript:ACTION/g,bmArray[i]['url']).replace(/TITLE/g,bmArray[i]['label']);
  167.     else return '';
  168. }
  169. function editCommentsButton(i,small){
  170.     var bt=small?editCommentsButtonTemplateS:editCommentsButtonTemplate;
  171.     return bt.replace(/ACTION/g,"ce('show',"+i+")");
  172. }
  173. function suppButton(i,small){
  174.     var bt=small?suppButtonTemplateS:suppButtonTemplate;
  175.     return bt.replace(/ACTION/g,"supp("+i+")");
  176. }
  177. function newBookmarkButton(i,small){
  178.     var bt=small?newBookmarkButtonTemplateS:newBookmarkButtonTemplate;
  179.     return bt.replace(/ACTION/g,"newBookmark(\'show\',"+i+")");
  180. }
  181. function fullScreenButton(i){
  182.     return fullScreenButtonTemplate.replace(/javascript:ACTION/,"javascript:bmOpen("+i+")");
  183. }
  184. function addToBookmarks(i){
  185.     localBookmark(bmArray[i]['url'],bmArray[i]['label'])
  186. }
  187. function localBookmark(url,label){
  188.     if (W.sidebar) return W.sidebar.addPanel(label, url, "");
  189.     if (W.external) return W.external.AddFavorite(url,label);
  190. }
  191.  
  192. function tnResizedUrl(url,w){
  193.     return url.replace(/\/w[\.][0]{0,1}/,"/w."+w).replace(/\/h[\.][0]{0,1}/,"/h."+Math.floor(w*thumbnailRatio))
  194. }
  195.  
  196. function sortTreeView(s){
  197.     if(s) {wl.button.disable(dgi('sortTreeView'));wl.button.enable(dgi('sortTreeViewNo'));}
  198.     else  {wl.button.disable(dgi('sortTreeViewNo'));wl.button.enable(dgi('sortTreeView'));}
  199.     dgn('sortTreeView',0).value=s; D.forms.sortTreeViewForm.submit();
  200. }
  201. function bookmarksLayoutSet(l){
  202.     bookmarksLayout=l;
  203.     var e=wl.button.enable;
  204.     e(dgi('bookmarksLayout_list'));
  205.     e(dgi('bookmarksLayout_icons'));
  206.     e(dgi('bookmarksLayout_full'));
  207.     wl.button.disable(dgi('bookmarksLayout_'+l));
  208.     sendData('bookmarksLayoutSet='+l);
  209. }
  210.  
  211. function singleBookmarkLayoutSet(l){
  212.     singleBookmarkLayout=l;
  213.     var e=wl.button.enable;
  214.     e(dgi('singleBookmarkLayout_thumbnail'));
  215.     e(dgi('singleBookmarkLayout_web'));
  216.     wl.button.disable(dgi('singleBookmarkLayout_'+l));
  217.     sendData('singleBookmarkLayoutSet='+l);
  218. }
  219.  
  220. // SINGLE
  221. function displaySingle(bm){
  222.     bmArray=new Array(bm);
  223.     displayed='single';
  224.     dgi("singleControls").style.display='';dgi("multipleControls").style.display='none';
  225.  
  226.     dgi("controls").innerHTML='';
  227.  
  228.     if(editAllowed) dgi("controls").innerHTML+=newBookmarkButton(0)+editCommentsButton(0)+suppButton(0)+'    '
  229.     dgi("controls").innerHTML+=addToBookmarksButton(0);+'  '
  230.  
  231.     if(singleBookmarkLayout=='web' || !displayThumbnails){
  232.         dgi("controls").innerHTML+=fullScreenButton(0)+'  ';
  233.         dgi('bookmarksDiv').innerHTML='<iframe src="'+bm['url']+'" style="width:98%;height:98%;border:1px solid #CCC" frameborder="0">';
  234.         return;
  235.     }
  236.  
  237.     o='';
  238.     o+='<center>';
  239.     o+='<div class="frame3" style="cursor:pointer" onclick="bmOpen(0)"><br><b>'+bm['label']+'</b><br>'+bm['url']+'<br> </div><br>';
  240.     o+='<a href="javascript:bmOpen(0)">';
  241.     if(bm['tnE']){
  242.         o+='<img id="tnSingle" src="'+bm['tn']+'" alt="'+bm['label']+'" style="visibility:hidden" onload="fade(this)" width="<?php echo cfRGetVar('thumbnailSize');?>" height="<?php echo cfRGetVar('thumbnailSize')*cfRGetVar('thumbnailRatio');?>">';
  243.     }
  244.     else {
  245.         o+='<img id="tnSingle" tmp="'+bm['tn']+'" alt="'+bm['label']+'" style="visibility:hidden;display:none" width="<?php echo cfRGetVar('thumbnailSize');?>" height="<?php echo cfRGetVar('thumbnailSize')*cfRGetVar('thumbnailRatio');?>">';
  246.         o+='<div id="tnFSingle" class="tnFrame" style="width:<?php echo cfRGetVar('thumbnailSize');?>;height:<?php echo cfRGetVar('thumbnailSize')*cfRGetVar('thumbnailRatio');?>"><img src="<?php echo outIcon('loading');?>" style="position:relative;top:50%;margin-top:-8px"></div>';
  247.     }
  248.     o+='</a><br><br>';
  249.     if(bm['com']) o+='<div class="frame3" ><br>'+bm['com']+'<br> </div>';
  250.     o+='</center>';
  251.     dgi('bookmarksDiv').innerHTML=o;
  252.     if(!bm['tnE']){monitorTimeout=W.setTimeout(monitorTN,monitorDelay); return;}
  253. }
  254. // MULTIPLE
  255. function displayMultiple(bma){
  256.     out='';
  257.     bmArray=bma;
  258.     displayed='multiple';
  259.     dgi("controls").innerHTML=(editAllowed)?newBookmarkButton(0)+'    ':'';
  260.  
  261.     dgi("singleControls").style.display='none';dgi("multipleControls").style.display='';
  262.  
  263.     // List
  264.     if(bookmarksLayout=='list'){
  265.         out='<table onmousemove="eHover(event)" onmouseout="eHover()" cellspacing=0 cellpadding=0 width="99%"><colgroup><col width="20"><col width="*"><col width="70"></colgroup>';
  266.         for(var i=0;i<bma.length;i++){
  267.             bm=bma[i];
  268.             o='<tr id="'+i+'" class="eTC '+((i%2)?'even':'odd')+'" eH=1 onmouseover="tooltip(this)">';
  269.             o+='<td class="eTCLeft"><img src="'+bm['ico']+'" style="width:16;height:16">  </td>';
  270.             o+='<td onclick="bmOpen('+i+')">'+bm['label']+'</td>';
  271.             o+='<td class="eTCRight" style="text-align:right;white-space:nowrap">'
  272.             if(editAllowed){
  273.                 o+=suppButton(i,1)+editCommentsButton(i,1)+" "
  274.             }
  275.             o+=addToBookmarksButton(i,1)
  276.             o+='</td></tr>';
  277.             out+=o;
  278.         }
  279.         out+='</table>';
  280.     }
  281.  
  282.     // Icons
  283.     else if(bookmarksLayout=='icons'){
  284.         for(var i=0;i<bma.length;i++){
  285.             bm=bma[i];
  286.             tnL=tnResizedUrl(bm['tn'],thumbnailSizeIcons);
  287.             o='<fieldset><div id="f'+i+'" style="width:'+thumbnailSizeIcons+';text-align:center" onclick="iconCM(this,event)" oncontextmenu="iconCM(this,event);return false">'
  288.             if(bm['tnE']) o+='<img class="tnImg" src="'+tnL+'" style="width:'+thumbnailSizeIcons+'px;height:'+(thumbnailSizeIcons*thumbnailRatio)+'px;border:1px solid #EEE;visibility:hidden" onload="fade(this)">';
  289.             else{
  290.                 o+='<img id="tn'+i+'" class="tnImg" tmp="'+tnL+'" style="width:'+thumbnailSizeIcons+';border:1px solid #EEE;visibility:hidden;display:none">';
  291.                 o+='<div id="tnF'+i+'" class="tnFrame" style="width:'+thumbnailSizeIcons+';height:'+Math.floor(thumbnailSizeIcons*thumbnailRatio)+'"><img src="<?php echo outIcon('loading');?>" style="position:relative;top:50%;margin-top:-8px"></div>';
  292.             }
  293.             o+='<br><div style="width:120;height:4em;overflow:hidden">'+bm['label']+'</div>';
  294.             o+='</div></fieldset>';
  295.             out+=o;
  296.         }
  297.     }
  298.  
  299.     // Full
  300.     else {
  301.         out='<table cellspacing=0 cellpadding=0 width="100%"><colgroup><col width="50%"><col width="50%"></colgroup>';
  302.         for(var i=0;i<bma.length;i++){
  303.             bm=bma[i];
  304.             o='';
  305.             if(i%2==0) o+='<tr>';
  306.             o+='<td><div class="frame3" style="<?php if(cfGetBrowser()!='ie') echo 'min-';?>height:'+(thumbnailSizeIcons*thumbnailRatio+20)+'px;vertical-align:top;margin:0.2em">';
  307.             o+='<img id="tn'+i+'" src="'+tnResizedUrl(bm['tn'],thumbnailSizeIcons)+'" style="float:left;margin:10;cursor:pointer;width:'+thumbnailSizeIcons+';height:'+(thumbnailSizeIcons*thumbnailRatio)+';border:1px solid #EEE;visibility:hidden" onload="fade(this)" onclick="bmOpen('+i+')"><br>'
  308.             o+='<div style="float:right">';
  309.             o+=addToBookmarksButton(i,1)
  310.             if(editAllowed){
  311.                 o+='<br><br>'+suppButton(i,1)+'<br><br>'+editCommentsButton(i,1);
  312.             }
  313.             o+='</div>';
  314.             o+='<div onclick="bmOpen('+i+')" style="cursor:pointer"><b>'+bm['label']+'</b><br>';
  315.             o+=bm['com']?bm['com']:'';
  316.             //o+=bm['tn']+'<br>';
  317.             o+='</div></div></div></td>';
  318.             if(i%2==1) o+='</tr>';
  319.             out+=o;
  320.         }
  321.         if(i%2==1) out+='</tr>';
  322.         out+='</table>';
  323.     }
  324.     dgi('bookmarksDiv').innerHTML=out;
  325.  
  326.     for(var i=0;i<bma.length;i++) if(!bma[i]['tnE']){monitorTimeout=W.setTimeout(monitorTN,monitorDelay); return;}
  327. }
  328.  
  329. // Update thumbnails
  330. function updateTN(bma){
  331.     if(displayed=='single'){
  332.         if(bma['tnE']) {
  333.             with(dgi("tnSingle")){
  334.                 style.display='';
  335.                 src=getAttribute("tmp");
  336.                 style.visibility='';
  337.             }
  338.             removeNode(dgi("tnFSingle"));
  339.         }
  340.         else monitorTimeout=W.setTimeout(monitorTN,monitorDelay);
  341.         return;
  342.     }
  343.     for(var i=0;i<bma.length;i++) if(bma[i]['tnE'] && !bmArray[i]['tnE']){
  344.         bmArray[i]['tnE']=1;
  345.         if(dgi('tn'+i)) with(dgi('tn'+i)) {
  346.             style.display='';
  347.             src=getAttribute("tmp");
  348.             style.visibility='';
  349.         }
  350.         if(dgi('tnF'+i)) removeNode(dgi('tnF'+i));
  351.     }
  352.     for(var i=0;i<bma.length;i++) if(!bma[i]['tnE']){monitorTimeout=W.setTimeout(monitorTN,monitorDelay); return}
  353. }
  354.  
  355. function monitorTN(){sendData('monitorTN='+Math.random());monitorTimeout=0}
  356.  
  357. function selectBMTreeNode(node){
  358.     if(monitorTimeout) W.clearInterval(monitorTimeout); monitorTimeout=0;
  359.     node.setSelected();
  360.     sendData('selectItem='+node.getExtId())
  361. }
  362. function winResized(){
  363.     alignBottom(dgi("bookmarksDiv"),winMe,25);
  364.     alignBottom(dgi("<?php echo $treeView->HTMLDivID();?>"),winMe,18);
  365. }
  366.  
  367. // Context menu
  368. var cmSelectedId;
  369. function iconCM(n,e){
  370.     var rc=((e && e.which == 3)||(W.event && event.button == 2));
  371.     var i=n.id.substr(1);
  372.     cmSelectedId=i;
  373.     //if(!rc) {go(id);return};
  374.  
  375.     var cmi=new Array();u=0;
  376.     cmi[u++]=ContextMenuItem("<?php echo outIcon('fi/icoXml');?>","<?php echo cfCaption('genOpen')?>",'bmOpen(\''+i+'\')',1);
  377.     cmi[u++]=ContextMenuItem('sep');
  378.  
  379.     if(W.sidebar||W.external) cmi[u++]=ContextMenuItem("<?php echo outIcon('favorites');?>","<?php echo cfCaption('bookmarksAddToFavorites')?>",'addToBookmarks(\''+i+'\')');
  380.     else if(W.opera && W.print) cmi[u++]=ContextMenuItem(false,'<a href="'+bmArray[i]['url']+'" rel="sidebar"><img src="<?php echo outIcon('favorites');?>"><?php echo cfCaption('bookmarksAddToFavorites')?></a>',false);
  381.  
  382.     cmi[u++]=ContextMenuItem('sep');
  383.     cmi[u++]=ContextMenuItem(false,'<input style="width:'+thumbnailSizeFull*2+'px" value="'+bmArray[i]['url']+'">',false);
  384.  
  385.     if(editAllowed){
  386.         cmi[u++]=ContextMenuItem('sep');
  387.         cmi[u++]=ContextMenuItem("<?php echo outIcon('edit');?>","<?php echo cfCaption('genEdit')?>",'ce(\'show\',\''+i+'\')');
  388.         cmi[u++]=ContextMenuItem("<?php echo outIcon('del');?>","<?php echo cfCaption('genDelete')?>",'supp(\''+i+'\')');
  389.         cmi[u++]=ContextMenuItem('sep');
  390.     }
  391.     cmi[u++]=ContextMenuItem(false,'<img src="'+tnResizedUrl(bmArray[i]['tn'],thumbnailSizeFull*2)+'" style="width:'+thumbnailSizeFull*2+'px;height:'+thumbnailSizeFull*2*thumbnailRatio+'px;margin:2em;margin-left:0;visibility:hidden" onload="fade(this)">','bmOpen(\''+i+'\')');
  392.     cmi[u++]=ContextMenuItem('sep');
  393.     if(bmArray[i]['com']) {
  394.         cmi[u++]=ContextMenuItem('sep');
  395.         cmi[u++]=ContextMenuItem(false,'<span class="frame3">'+bmArray[i]['com']+'<br></span>',false);
  396.     }
  397.  
  398.     var cm=new ContextMenu(cmi,{'fade':1,'centerFirst':!rc});
  399. }
  400.  
  401. // Title & comments form
  402. function ce(action,i) {
  403.     if(!dgi("cePanel")) return;
  404.     var cePS=dgi("cePanel").style;
  405.     if(action=='hide') {
  406.         fade(dgi("cePanel"),1,0)
  407.         wl.setKeycodeListener(D,null);
  408.         maskHide();
  409.         return;
  410.     }
  411.     if(action=='show') {
  412.         maskShow(0,1)
  413.         maskMoveAbove(dgi("cePanel"))
  414.         wl.setKeycodeListener(D,ceKD)
  415.         // set dialog box position
  416.         if(navigator.appName=='Netscape') cePS.top=window.pageYOffset+1*screen.availHeight/5+'px';
  417.         else cePS.top=D.body.scrollTop+1*D.body.offsetHeight/5+'px'; //IE & OPERA
  418.         cePS.width=Math.floor((Math.min(600,2*winMe.getInnerWidth()/3)))+'px';
  419.         cePS.left=Math.floor((winMe.getInnerWidth()/2-Math.min(600,2*winMe.getInnerWidth()/3)/2))+'px';
  420.  
  421.         // fill title and comments
  422.         dgi("editCommentId").innerHTML="";
  423.         dgi("editTitleId").value=bmArray[i]['label'];
  424.         if(bmArray[i]['com']) {
  425.             var str=bmArray[i]['com'].replace(/<BR[ /]{0,2}>/gi,String.fromCharCode(13));
  426.             dgi("editCommentId").value = str;
  427.         }
  428.         else dgi("editCommentId").value="";
  429.         dgi("header").innerHTML = bmArray[i]['label'];
  430.  
  431.         dgi("item").value=bmArray[i]['id'];
  432.         fade(dgi("cePanel"))
  433.  
  434.         try{dgi("editCommentId").focus()} catch(e){}
  435.     }
  436.     if(action=='submit') {
  437.         cePS.display='none';
  438.         winMe.setReloading();
  439.         D.ceForm.submit();
  440.     }
  441. }
  442. function ceKD(kc){if(kc==27) ce('hide')}
  443.  
  444. // Create new bookmark
  445. function newBookmark(action,i) {
  446.     if(!dgi("nbPanel")) return;
  447.     var nbPS=dgi("nbPanel").style;
  448.     if(action=='hide') {
  449.         fade(dgi("nbPanel"),1,0)
  450.         wl.setKeycodeListener(D,null);
  451.         maskHide();
  452.         return;
  453.     }
  454.     if(action=='show') {
  455.         nbPS.visibility="hidden"
  456.         nbPS.display=""
  457.         maskShow(0,1)
  458.         maskMoveAbove(dgi("nbPanel"))
  459.         wl.setKeycodeListener(D,nbKD)
  460.  
  461.         // set dialog box position
  462.         if(navigator.appName=='Netscape') nbPS.top=window.pageYOffset+1*screen.availHeight/3+'px';
  463.         else nbPS.top=D.body.scrollTop+1*D.body.offsetHeight/3+'px'; //IE & OPERA
  464.         nbPS.width=Math.floor((Math.min(600,2*winMe.getInnerWidth()/3)))+'px';
  465.  
  466.         // fill title and comments
  467.         dgi("nbItemId").value=bmArray[i]['id'];
  468.         fade(dgi("nbPanel"))
  469.     }
  470. }
  471. function nbKD(kc){if(kc==27) newBookmark('hide')}
  472.  
  473. function supp(i) {
  474.     if(!confirm("<?php echo cfCaptionJS('bookmarksConfirmDelete');?>")) return;
  475.     dgi("suppress").value=bmArray[i]['id'];
  476.     winMe.setReloading();
  477.     D.suppForm.submit();
  478. }
  479. function tooltipGetContent(i){
  480.     bm=bmArray[i];
  481.     o='<div style="width:'+(2.5*thumbnailSizeFull)+'"><b>'+bm['label']+'</b><br><br>'+bm['url']+'<br><br>';
  482.     if(bm['tnE']) o+='<center><img src="'+tnResizedUrl(bm['tn'],2*thumbnailSizeFull)+'" style="visibility:hiddene;width:'+(2*thumbnailSizeFull)+';height:'+(thumbnailSizeFull*thumbnailRatio*2)+'" onload="fade(this)"></center><br>';
  483.     if(bm['com']) o+='<div class="frame3">'+bm['com']+'</div>';
  484.     o+='</div>';
  485.     return o
  486. }
  487. winResized();
  488. <?php
  489. bfUpdateDisplay();
  490. echo "\n";
  491. echo cfDragRegisterItems('',false);
  492. ?>
  493. </script>
  494. <?php
  495. exit;